23

» WarCraft 3 / Не всегда срабатывает триггер

Похожие вопросы:

ответ
не если дерево меньше 1, а если текущее дерево - 1 == 0
ответ
Подробнее, что и как делалои?
Иногда бывает что канал мешает даммикам кастануть спелл, но это бывает если:
  1. У канала указан базовый ид приказа от другого, существующего и применяющегося дамми юнитом скилла.
  2. Тип цели у канала отличается от того скилла чье ид указано в настройках канала.
  3. Игрок должен кастануть канал до того как кто либо кастанет скилл оригинал.
    Этот баг связан с кешированием приказа абилок как описывал DracoLich, варкравт записывает типы целей для всех абилок с этим ид, а когда скилл кастуют проверяет.
Допустим у тебя 2 скилла, первый натуральная волна силы с приказом ShockWave а второй канал с тем же ид приказа ShockWave но типом цели мгновенное (без указания цели), стоит тебе кастануть канал как дамми юниты которые кастуют первый скилл (волну силы) откажутся её кастовать, ибо движек вара будет считать что это селф каст абилка (абилки без указания цели на самом деле кастуются в самого кастера).
Дебаг типа

if not IssueTargetOrder( u, некий приказ, target ) then
 
	call BJDebugMsg( "Ошибка невозможно выполнить приказ такойто на цель" +GetUniTName(targ))
	
	if IssueTargetOrder( u, некий приказ, u ) then
			call BJDebugMsg( "Баг канала - измени ид приказа на несуществующий в предалах твоей карты!"))
	endif
	
endif

23

» Администрация XGM / Как удалить блог

Похожие вопросы:

ответ
да
только с файлами точно неизвестно, сломал ли хеллкор всё или нет. кстати, перенос хеллкор тоже мог сломать, я его интродюсил в в7 (точнее гада пинал) =)
ответ
можно. В блоге есть кнопка "написать менеджеру". Пишешь что нужно, менеджеры сделают.
ответ
Если хочешь, твои проекты и блог мы можем удалить.

23

» WarCraft 3 / Проблема с триггерами

Похожие вопросы:

ответ
Держи. Чтобы проверить нажми ESC в игре.
раскрыть
потребовалось полторы минуты
ответ
Проблема решилась, после соединения с администратором карта заработала и сохранилась. И на следующей карте соединения уже нет. Спасибо.
ответ
Mate, ну очивидно ошибка реализации, ибо используются одни и те же массивы, в которых происходит коллизия, одни и те же ячейки используют раные способности. Вовсе я бы не советовал так замарачиватся с гуи, а прочитать статьи на jass и забить на все это дело, юзая хештаблицы.
ответ
~8gabriel8:
Это событие срабатывает лишь при старте карты, чтобы сделать срабатывание, когда после потасовки остаётся один юнит, логично было бы сделать событие Generic unit Умирает. В условии учитываются не только живые юниты, но и их трупы, пока не разложатся, то есть будет срабатывать событие юнит Умирает, в условии юнитов в области будет больше 1, так как будут считаться мёртвые юниты, триггер так и не будет срабатывать, если через минуту какой-то юнит на карте не умрёт. Потому в условии нужно указывать не просто юнитов в области, а юниты в области matching condition, где поставишь (Matching unit) is alive равно Да. А чтобы не учитывались здания и призванные юниты, нужно вместо условия (Matching unit) is alive равно Да выбрать в низу списка And, появится два условия, в первое ставишь (Matching unit) is alive равно Да, во второе опять And и аналогично выбираешь, (Matching unit) is Здание равно Нет и что-то такое же на призванных (summon).
Только в действии тоже укажи, что живой, не Здание и не призванный, а то кого-то из них может убить.

23

» WarCraft 3 / Программа для работ с иконками.

Похожие вопросы:

ответ
  1. тогда сделай при найме героя, чтобы все остальные блокировались для данного игрока.
  2. попробуй тогда сделать условие number of units owned by player matching the codition (matching unit is alive = true) равно 0
ответ
интересно какой из 4 mpq стандартный?
NiktoTakoy, если ты редактируешь вар то про сетевую игру забудь
ответ
Алексей777; WEU устарела и не работает с редакторами 1.21+. Карта сохранённая в 1.26 вряд-ли запустится в 1.21. Стоит бросить это дело. Если карта делается с нуля, то можно начать с 1.31, там есть возможность добавить 16 текстур ландшафта.

Галки стоят в JNGP?
раскрыть
Установка текстур
Читай здесь.

23

» WarCraft 3 / Нужно ли удалять эффекты и как?

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
в патче 1.26+ они вообще не нужны и без них можно обойтись в любой ситуации
Не в любой
native GetLocationZ takes location whichLocation returns real
native CreateUnit А можно написать переменную вместо юнита? native udg_unit Юнапример?
Что вы вообще хотите сделать?
set udg_u = CreateUnit(Player(0), GetRectCenterX(bj_mapInitialPlayableArea), GetRectCenterY(bj_mapInitialPlayableArea), 270)

23

» WarCraft 3 / Работа с текстурой.

Похожие вопросы:

ответ
ну вот в чём твоя ошибка: Ты изменил название текстуры, а значит ты изменил и пути, тебе нужно зайти в war3modelEditor и там уже открыв модель выбрать вкладку: Windows=>Texture Manager, где будет список текстур, ты удаляешь 1 старую текстуру, которая у тебя была и добавляешь новую, при этом модель с текстурой должны лежать в одной папке, которая не содержит кириллицы (например путь должен быть d:\Users\User\Desktop\moroz - без русских букв ).
Переименовать новую текстуру на старую по идее не имеет смысла, потому что опять же ты сохранил её без текстуры, а => испоганил, накосячил, сломал (называй как хочешь).
ответ
мдлвиз вроде умеет их
или 3д макс
а вообще
ответ
Basile2, всмысле. Там просто пустьстираешь и это и есть путь этой текстуры. Проверил MDX Pather'ом. Как и для большинства моделей.
Все я сделал правильно!!!
ответ
~8gabriel8:
В редакторе кампаний 4 вкладки, последняя для импорта. Импортируй туда модель с текстурами так, как и в карту.
ответ
~8gabriel8:
Как и предполагал

23

» WarCraft 3 / Помогите создать триггер.

Похожие вопросы:

ответ
Вот сделал, незачто)
ответ
Для начала создаешь способность вампиризма, например с 4 уровнями.
1 уровень - 25%
2 уровень - 50%
3 уровень - 75%
4 уровень - 100% вампиризма.
Если нынешнее здоровье героя деленное на максимальное здоровье этого же героя < 0,25 - делаем четвертый уровень способности.
Если нынешнее здоровье героя деленное на максимальное здоровье этого же героя < 0,50 - даем третий уровень способности
И т.д.
ответ
Перенеси условия в блоки "Иначе", как на картинке и тогда попробуй.
Должно создаваться по одному предмету за раз.
алсо - "Модернизация"
ответ
Если я правильно помню, можно отследить, становиться ли золото больше определенного значения. Итак:
  • пишем текущее значение в переменную;
  • создаем триггер, который срабатывает, если значение золота становиться больше переменной.
Если триггер сработал:
  • находим разницу;
  • добавляем еще столько же;
  • обновляем переменную;
  • возможно. придется пересоздать триггер.
Также переменную придется обновлять при покупке юнитов, улучшений и прочего, то есть, при трате золота.

23

» WarCraft 3 / Запретить выбор юнита

Похожие вопросы:

ответ
Может, очищать выбор для игрока?
Событие: игрок выбирает юнита
Условие: Выбранный юнит принадлежит (Triggering Player)
Действие: очистить выбор для игрока (Triggering Player)
Как-то так примерно. Других вариантов не вижу.

23

» WarCraft 3 / Редактор вылетает при попытке запуска

Похожие вопросы:

ответ
Smart096, баг только в этой карте?
в новых картах бага нету?
если да то стоит проверить импортируемые модели и текстуры (мб часть битая)
но с вероятностью в 60% проблема в системе ибо было много жалоб на баги в вин10

23

» WarCraft 3 / Не открывается обычный редактор

Похожие вопросы:

ответ
о когда я сделал своего героя в нём, то в игре он почему то не используется, в редакторе выставляешь юнита на карту, но при проверке карты, его просто нет.
Ты открыл карту из редактора кампании?
Если нет - поэтому и не отображается.
ответ
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе

В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.

Только там такой срач и дичь, что лучше реально своими руками с нуля писать...

23

» WarCraft 3 / Жанр для карты

Похожие вопросы:

ответ
Ни разу не делал карты "чисто стандартного жанра". Т.е. общий жанр определить можно всегда, но нужно чтобы можно было выделить что-то, чем твоя карта реально отличается от себе подобных.
Вот, глянь чуть (щас набегут хомячки с возгласами ОЛОЛО РЕКЛАМА ДОК БЛИН КАК НЕ СТЫДНА)
ответ
Gerych, сюда тоже можно но вопрос будет закрыт через неделю с момента последнего ответа
ну а вообще для таких вещей стоит создать бложик и там в качестве ресурса подобное спрашивать
ответ
Если Вы хотите достигнуть цели, то ваши дороги ведут по этой ссылке xgm.guru/p/wc3/articles.
ответ
Steal nerves:
мб нужно сменить ид приказ у абилки
ответ
На Arctic RPG смахивает, проверьте.

23

» WarCraft 3 / Проверка условия на вход в область

Похожие вопросы:

ответ
Утечка - это когда не удаляются ненужные объекты. Здесь регион нельзя удалять, потому что без него событие не будет работать. Но если у вас много таких событий, то лучше использовать один регион для всех событий, при условии, что размеры региона не будут изменяться в процессе игры, потому что это может нарушить работу других событий, привязанных к данному региону.
А функция TriggerRegisterEnterRectSimple в теории не утечна, но на практике может утекать, например, если в потоке триггера будет вызвано её уничтожение RemoveRegion(GetTriggeringRegion()).

23

» WarCraft 3 / World Editor

Похожие вопросы:

ответ
Ну видимо хреново сделал, раз фаталит...
ответ
в настройках редактора нужно изменить параметры создания новой карты на старте и автоматического создания новых окон инструментов на выкл
плюс выключайте дерево юнитов и прочего, которое слева внизу
а если инструменты лагают из-за того, что у вас много юнитов\декораций и т.п., это никак не исправить
переписать вар\купить комп не считается
ответ
используй русскую версию варика
Тестировал на обоих версиях варика(путем изменения пути в реестре), у меня их 4 вообще. 1.26a - ru, 1.27b - en, 1.30.1, 1.30.2
ApEJI:
Да у него английские ве, вот и не видит шрифт
Сейчас 2018 и в новом приложении/игре такого быть не может, но вспомните как мы пользовались хп, и довольно часто видели такие баги у ровесников варкрафта
Ответ косвенно навел на решение проблемы, спасибо.
У меня windows английская. В реестре поменял кодировку ACP xgm.guru/files/100/218450/comments/405777/Capture.png и кириллица стала отображаться.
ответ
Такого нет.

23

» WarCraft 3 / Помогите с текстурами модели

Похожие вопросы:

ответ
Свершылось... Заработало...
Вот оно.

Описание проверки:
  • проверил в редакторе, он просто вылетает при попытке настройки в РО;
  • переконвертировал в .mdl и осмотрел, все норм;
  • открыл в War3ModelEditore, удалил лишние текстуры, материалы, настроил анимации геосетов;
  • профит.
Если кто не верит, вот скрин.
ответ
~2Serious4Die:
ENAleksey:
Попробуй в mdlvis'е увеличить модель в 10 раз, сохрани, открой в war3 me, рассчитай границы, сохрани, опять зайди в mdlvis и уменьши модель в 10 раз.
Может помочь, а может и нет. Другого способа пока нет.
вообщем там проблема оказалась в другом, расчет границ помогал, просто я стандартные модели деревьев пытался заменить на отредактированные , но они не менялись.
ответ
Viktor2, а ты реально импортировал все текстуры (в кол-ве 21шт ) в карту? Если хотя бы одну забыл -модель не будет отображаться.
ответ
ENAleksey, ну я же не могу твою модификацию запихнуть в карту.
ответ
После добавления новых файлов в менеджер импорта, нужно сохранить карту или перезапустить редактор. Если после этого все равно зеленый квадрат - вы сделали что-то не правильно.

23

» WarCraft 3 / UI-инвентарь

Похожие вопросы:

ответ
если хотите ссылку вот xgm.guru/p/wc3/unliminv?postid=291866
а может не тот не помню век прошел =)
ответ
~8gabriel8:
По идее можно триггерно добавлять предмет в инвентарь, если отдан приказ выложить его в позицию юнита.
ответ
~8gabriel8:
Нету в карте триггера на стакание предмета, но есть непонятный триггер дропа:
Как понимаю, он должен работать лишь для определённого вида героев, которых автор зачем-то удалил, но не суть, главное, что вообще нет триггера на стакание предметов. Зато есть Руна Исцеления, которую советовал Bergi_Bear, есть две хилки, которые советовал PT153.
Александр19, не верю, что ты вообще нуб в триггерах, так как что-то там составляешь, скорее ты просто удалил триггер из неё, ради которого у тебя карту и просили. Честно скажу, что ты неадекватный. Но мы здесь не для диагнозов, а чтобы на вопросы отвечать, потому вот здесь xgm.guru/p/wc3/193169 возьми систему сложения и разъединения предметов, оттуда скопируй себе в карту триггеры PickUp, AddOrDiv и включи их. Там всё подробно описано, просто сменишь Камень Здоровья на свою хилку. А главное, дроп происходит из-за триггеров OgrItemBoss2 и OgrItemBoss3.
Отключи их.
ответ
массив из пяти типов предметов, при событии "юнит получает предмет" смотрим наличие предмета с типом из массива в каждом слоте по очереди, если есть хоть один, то выбрасываем полученный предмет на землю

23

» WarCraft 3 / Крашится редактор старых версий

Похожие вопросы:

ответ
Smart096, баг только в этой карте?
в новых картах бага нету?
если да то стоит проверить импортируемые модели и текстуры (мб часть битая)
но с вероятностью в 60% проблема в системе ибо было много жалоб на баги в вин10

23

» WarCraft 3 / Помогите найти ошибку в триггере

Похожие вопросы:

ответ
call BJDebugMsg(string) отладка в редакторе.
ответ
Юнитов поднимает тогда же, когда и опускает, потому что я удаляю их из DedG[3], но забываю удалить из группы снарядов, таким образом, к тем кто попал под падение, уже навечно задействован акт снарядов(опускание), пока они в DedG[3]
ответ
Способности выбирающие кого добавлять на основе чего сделаны?

23

» WarCraft 3 / Круг выбора

Похожие вопросы:

ответ
ручками попробуй выровнять их
ответ
Прикрепляю.
ответ
Графика - шкала выбора
ответ
EnableSelect( true, false )
если я правильно понял
затем если нужно включить, то в конец ставится true

23

» WarCraft 3 / Проблема с условием

Похожие вопросы:

ответ
Есть проверка IsUnitDead, где проверяется тип и состояние IsUnitType(u, UNIT_TYPE_DEAD) но никогда не было проблем с проверкой хп.
Так же насколько я помню GetWidgetLife( unit ) > 0.0 или GetUnitState( unit, UNIT_STATE_LIFE ) > 0.405.
ответ
~8gabriel8:
Пока нет желания разбираться, что у тебя так, а что не так. Но вижу, что переменная Window не назначена окну, а ещё как бы создаются в цикле одновременно 10 окон, которые потом все одновременно ждут 50 секунд. Вот скрин действий триггера вместо двух твоих, секунда ожидания поставлена для того, чтобы увидеть пропадание окна таймера.
ответ
~8gabriel8:
Это событие срабатывает лишь при старте карты, чтобы сделать срабатывание, когда после потасовки остаётся один юнит, логично было бы сделать событие Generic unit Умирает. В условии учитываются не только живые юниты, но и их трупы, пока не разложатся, то есть будет срабатывать событие юнит Умирает, в условии юнитов в области будет больше 1, так как будут считаться мёртвые юниты, триггер так и не будет срабатывать, если через минуту какой-то юнит на карте не умрёт. Потому в условии нужно указывать не просто юнитов в области, а юниты в области matching condition, где поставишь (Matching unit) is alive равно Да. А чтобы не учитывались здания и призванные юниты, нужно вместо условия (Matching unit) is alive равно Да выбрать в низу списка And, появится два условия, в первое ставишь (Matching unit) is alive равно Да, во второе опять And и аналогично выбираешь, (Matching unit) is Здание равно Нет и что-то такое же на призванных (summon).
Только в действии тоже укажи, что живой, не Здание и не призванный, а то кого-то из них может убить.
ответ
Остальные не помню, откуда.
Сборку игры я спрашивал.
WAGARAX:
Время - 1.1 сек
Верни 5 секунд в игровых константах.
А ещё перезагрузи компьютер.

23

» WarCraft 3 / Оптимальная реализация события каста

Похожие вопросы:

ответ
Ну, перенеси всё это clawbfs.ucoz.ru/forum/3-2-1 и итемы и две игровые карты с кучей режимов и сотни шапок и т. д. + в 2 раза больше новых идей clawbfs.ucoz.ru/forum/7 clawbfs.ucoz.ru/forum/16-1571-1 clawbfs.ucoz.ru/forum/9 со всеми функциями варкрафта (а их там всё же не так уж и мало) в игру на юнити или ещё куда в один присест, сделай дело доброе.
Бтв, про сбор команды - для продвинутых сущностей нередко исправлять за другими оказывается тяжелее, чем делать самому, важно создать максимально комфортные условия для созидания, вот для чего деньги не лишние, а уж дело и самому можно делать.
И, да, тема-то не про то, надо это или не надо, а про то, как лучше это сделать, я про это и в стартовом сообщении написал.
Я на крайний сам вопрос по варианту 3 проверю и/или будет сделан выбор между третьим вариантом, вторым, каким-то ещё и отказом от Cooldown Reduction, но если кто поможет - спасибо.
ответ
то скорость разная, то вылетают не из героя а из какой то псевдо центральной точки
в общем я полностью добился желаемого результата, никакого прерывания, ни каких лагов и странных поведений (то что снаряды врезаются в трупы так и задумано =))
вот мой код
//! beginusercode

--какие то общие функции
function MoveX (x,  Dist,  Angle)
    return x+Dist*Cos(Angle*0.0175)
end
function MoveY (x,  Dist,  Angle)
    return x+Dist*Sin(Angle*0.0175)
end
function AbilityId(id)
    return id:byte(1) * 0x1000000 + id:byte(2) * 0x10000 + id:byte(3) * 0x100 + id:byte(4)
end

function Out(x,y)
    return ( ( GetRectMinX(bj_mapInitialPlayableArea) <= x ) and ( x <= GetRectMaxX(bj_mapInitialPlayableArea) ) and ( GetRectMinY(bj_mapInitialPlayableArea) <= y ) and ( y <= GetRectMaxY(bj_mapInitialPlayableArea) ) ) or IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY) == false
end

GetTerrainZ_location = Location(0, 0)
function GetTerrainZ(x,y)
    MoveLocation(GetTerrainZ_location, x, y);
    return GetLocationZ(GetTerrainZ_location);
end

function ehandler( err )
    print( "ERROR:", err )
end
--/////// глобалки (хотя какая разница где объявить то)
perebor=CreateGroup()

--/////// триггер

    local trigger = CreateTrigger()
    for i = 0, bj_MAX_PLAYER_SLOTS - 1, 1 do
        TriggerRegisterPlayerUnitEvent(trigger, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT)
    end
    TriggerAddCondition(trigger, Condition(function() return
        GetOwningPlayer(GetTriggerUnit()) == Player(0)
    end))
local d=0
TriggerAddAction(trigger, function()
    local u=GetTriggerUnit()
    local z=GetTerrainZ(GetUnitX(u),GetUnitY(u))
        print("perodstart")
        TimerStart(CreateTimer(), 0.1, true, function()
        d=d+1

 --print("abiclick "..d)
 -- будущая фукция запуска снаряда
 local x=GetUnitX(u)
 local y=GetUnitY(u)
 local eff=AddSpecialEffect("Abilities\\Weapons\\DemolisherFireMissile\\DemolisherFireMissile.mdl", x, y)
 local d2=1000
 local a=GetUnitFacing(u)

 TimerStart(CreateTimer(), 0.032, true, function()
 d2=d2-10
 x=MoveX(x,25,a)
 y=MoveY(y,25,a)
 BlzSetSpecialEffectPosition(eff, x, y, GetTerrainZ(x,y)+30)
-- урон
local e=nil
GroupEnumUnitsInRange(perebor,x,y,80,null)
while true do
	e = FirstOfGroup(perebor)
	if e == nil then break end
if IsUnitEnemy(e, GetOwningPlayer(u)) then
    UnitDamageTarget( u, e, BlzGetUnitBaseDamage(u, 1), false, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE, WEAPON_TYPE_WHOKNOWS )
   -- print("наносим урон")
    DestroyEffect(eff)
    eff=nill 
end

	GroupRemoveUnit(perebor,e)
end

--print(d2)

 if d2<=0 or  Out(x,y)==false or eff==nil then
  --  print("УМРИ!")
    DestroyEffect(eff)
    DestroyTimer(GetExpiredTimer())
 end

 end)

    end)
end)





//! endusercode
а вот и карта
Выражаю огромную благодарность NazarPunk, и Prog за оказанную помощь и наставления
Выводы:
Более навороченные (в техническом плане) способы не всегда самые оптимальные
Точно также можно двигать эффекты и на мемхаке, так что 126 пат так же может удостоится высокой производительностью для огромного количества снарядов
Мой комп держит на 1 экране около 700 объектов в режиме 60+ FPS (с отключенной вертикальной синхронизацией, это когда макс фпс за 200)

23

» WarCraft 3 / Дроп предметов из инвентаря героя

Похожие вопросы:

ответ
Ну задай рандомную переменную от 1 до 6 и дропай предмет из слота под этим номером
Единственная проблема - если у носильщика меньше 6 слотов, то появляется вероятность не дропнуть ничего, ну тут можно циклом как-то, типа если дропнутый предмет = нет предмета, повторить (ток еще, чтобы цикл не мог стать вечным, проверить, что у юнита хоть 1 предмет вообще есть)

23

» WarCraft 3 / Визуальная перезарядка пассивной способности

Похожие вопросы:

ответ
Naadir, Ну хаком на память, чтобы совсем пассивка не кликабельная, только мемхак. Ну есть еще костыль с перерождением, если убить его владельца то пойдет кд. Иначе костыль с активкой.
ответ
на основе эксгумация труповозок можно сделать пасивки с колдаунами
вот наработка